broadway: Prune fully clipped render nodes
authorAlexander Larsson <alexl@redhat.com>
Wed, 26 Aug 2020 16:08:00 +0000 (18:08 +0200)
committerAhmed Eldemery <aeldemery.de@gmail.com>
Fri, 28 Aug 2020 16:45:01 +0000 (18:45 +0200)
commit39d71dbb0aca54340874c38cdf26fd3539e293bc
treeef7c93ca6dd33601e4b2517999d6d31045051b9f
parentb5e7499bbd257d7444e7bf92cdb1e67897e38533
broadway: Prune fully clipped render nodes

If some node is fully outside the clip region we don't send it to the daemon.
This helps a lot in how much data we send for scrolling viewports.

However, sending partial trees makes node reuse a bit more tricky. We
can't save for reuse any node that could possibly clip different depending on
the clip region, as that could be different next frame. So, unless the
node is fully contained in the current clip (and we thus know it is not
parial) we don't allow reusing that next frame.

This fixes #3086
gdk/broadway/broadway-protocol.h
gsk/broadway/gskbroadwayrenderer.c